// 菜单折叠状态 存储状态 管理
const localData = localStorage.getItem('pz_v3pz')
const state = localData?localData.menu: {
    isCollapse: false, // 是否折叠
    selectMenu: [] , // 选中的菜单
    routerList: [],  // 动态路由
    menuActive: '1-1'  // 当前激活的菜单
}
// 修改状态 存储
const mutations = {
    // 切换菜单的折叠状态
    collapseMenu(state) {
        state.isCollapse = !state.isCollapse
    },
    addMenu(state, payload) {
        // 数据去重 -1：代表原先数据里面不存在当前传过来的数据
        if (state.selectMenu.findIndex(item => item.path === payload.path) === -1) {
            state.selectMenu.push(payload)
        }
    },
    // 删除菜单
    closeMenu(state, payload) {
        // 找到点击数据的索引
        const index = state.selectMenu.findIndex(val => val.path === payload.path)
        // 删除数据
        state.selectMenu.splice(index, 1)
    },
    // 菜单
    dynamicMenu(state, payload) {
        console.log("dynamicMenu", payload)
        // 通过glob导入文件
        const modules = import.meta.glob('../views/**/**/*.vue')
        console.log("modules",modules);
        // 遍历数据
        function routerSet(router) {
            router.forEach(route => {
                // 判断没有子菜单，拼接路由数据
                if (!route.children) {
                    const url = `../views${route.meta.path}/index.vue`;
                    // 拿到获取的vue文件
                    route.component = modules[url]

                }else{
                    // 递归调用
                    routerSet(route.children);
                }

            });

        }

        // 调用方法
        routerSet(payload)
        // 拿到完整的路由数据
        state.routerList = payload



    },
    // 修改当前激活的菜单
    changeMenuActive(state, payload) {
        state.menuActive = payload
    }

}
// 导出
export default {
    state,
    mutations
}
